/**
 * 服务器连接状态管理
 * 控制导航栏设置图标右下角的状态指示灯
 */

// 状态类型
const ServerStatus = {
  CONNECTED: 'connected',      // 绿色 - 连接正常
  CONNECTING: 'connecting',    // 黄色 - 正在连接
  DISCONNECTED: 'disconnected' // 红色 - 连接断开
};

/**
 * 更新服务器状态指示灯
 * @param {string} status - 状态类型 ('connected', 'connecting', 'disconnected')
 */
function updateServerStatus(status) {
  const indicator = document.getElementById('serverStatusIndicator');
  if (!indicator) {
    console.warn('服务器状态指示灯元素未找到');
    return;
  }

  // 移除所有状态类
  indicator.classList.remove('connected', 'connecting', 'disconnected');
  
  // 添加新状态类
  if (Object.values(ServerStatus).includes(status)) {
    indicator.classList.add(status);
    console.log(`服务器状态已更新: ${status}`);
  } else {
    console.error(`无效的服务器状态: ${status}`);
  }
}

/**
 * 获取当前服务器状态
 * @returns {string} 当前状态
 */
function getServerStatus() {
  const indicator = document.getElementById('serverStatusIndicator');
  if (!indicator) return null;

  if (indicator.classList.contains('connected')) return ServerStatus.CONNECTED;
  if (indicator.classList.contains('connecting')) return ServerStatus.CONNECTING;
  if (indicator.classList.contains('disconnected')) return ServerStatus.DISCONNECTED;
  
  return null;
}

// 导出到全局作用域（如果需要）
if (typeof window !== 'undefined') {
  window.ServerStatus = ServerStatus;
  window.updateServerStatus = updateServerStatus;
  window.getServerStatus = getServerStatus;
}

// 示例用法：
// updateServerStatus(ServerStatus.CONNECTED);    // 设置为连接正常（绿色）
// updateServerStatus(ServerStatus.CONNECTING);   // 设置为正在连接（黄色，有动画）
// updateServerStatus(ServerStatus.DISCONNECTED); // 设置为连接断开（红色）
